package nl.ceasaro.jeslee.core.model.clothes.size;

import org.apache.commons.lang.NotImplementedException;

/**
 * Created by IntelliJ IDEA.
 * User: cees
 * Date: Oct 7, 2008
 * Time: 10:45:24 PM
 * <p>
 * Represents the clothing size of childern clothes.
 * </p>
 * Below is a conversion table of the different sizes in different countries.
 * <pre>
 *  CHILDREN'S CLOTHING
 * american        1    2    3    4    5    6   6X    7    8    9   10   11   12
 * European       80   92   98  104  110  116  122  122  128  134  140  146  152
 * British        18   20   22   24   26   28   30   32   34   36   38   40   42
 * Australian      ???
 * Japanese        ???
 * </pre>
 */
public class ChildrenClothingSize extends ClothingSize
{
   private static final long serialVersionUID = -5999815267480496021L;

   // american children clothing sizes
   public static final String AMERICAN_1 = "1";
   public static final String AMERICAN_2 = "2";
   public static final String AMERICAN_3 = "3";
   public static final String AMERICAN_4 = "4";
   public static final String AMERICAN_5 = "5";
   public static final String AMERICAN_6 = "6";
   public static final String AMERICAN_6X = "6X";
   public static final String AMERICAN_7 = "7";
   public static final String AMERICAN_8 = "8";
   public static final String AMERICAN_9 = "9";
   public static final String AMERICAN_10 = "10";
   public static final String AMERICAN_11 = "11";
   public static final String AMERICAN_12 = "12";
   private static final String[] AMERICAN_SIZES = {
         AMERICAN_1, AMERICAN_2, AMERICAN_3, AMERICAN_4, AMERICAN_5, AMERICAN_6, AMERICAN_6X,
         AMERICAN_7, AMERICAN_8, AMERICAN_9, AMERICAN_10, AMERICAN_11, AMERICAN_12};

   // european children clothing sizes
   public static final String EUROPEAN_80 = "80";
   public static final String EUROPEAN_92 = "92";
   public static final String EUROPEAN_98 = "98";
   public static final String EUROPEAN_104 = "104";
   public static final String EUROPEAN_110 = "110";
   public static final String EUROPEAN_116 = "116";
   public static final String EUROPEAN_122 = "122";
   public static final String EUROPEAN_128 = "128";
   public static final String EUROPEAN_134 = "134";
   public static final String EUROPEAN_140 = "140";
   public static final String EUROPEAN_146 = "146";
   public static final String EUROPEAN_152 = "152";
   private static final String[] EUROPEAN_SIZES = {
         EUROPEAN_80, EUROPEAN_92, EUROPEAN_98, EUROPEAN_104, EUROPEAN_110, EUROPEAN_116, EUROPEAN_122,
         EUROPEAN_122, EUROPEAN_128, EUROPEAN_134, EUROPEAN_140, EUROPEAN_146, EUROPEAN_152};

   public static final String BRITISH_18 = "18";// british children clothing sizes
   public static final String BRITISH_20 = "20";
   public static final String BRITISH_22 = "22";
   public static final String BRITISH_24 = "24";
   public static final String BRITISH_26 = "26";
   public static final String BRITISH_28 = "28";
   public static final String BRITISH_30 = "30";
   public static final String BRITISH_32 = "32";
   public static final String BRITISH_34 = "34";
   public static final String BRITISH_36 = "36";
   public static final String BRITISH_38 = "38";
   public static final String BRITISH_40 = "40";
   public static final String BRITISH_42 = "42";
   private static final String[] BRITISH_SIZES = {
         BRITISH_18, BRITISH_20, BRITISH_22, BRITISH_24, BRITISH_26, BRITISH_28, BRITISH_30,
         BRITISH_32, BRITISH_34, BRITISH_36, BRITISH_38, BRITISH_40, BRITISH_42};

   public ChildrenClothingSize(String size, ClothingSizeType clothingSizeType)
   {
      super(size, clothingSizeType);
   }

   @Override
   protected String[] giveAmericanSizes()
   {
      return AMERICAN_SIZES;
   }

   @Override
   protected String[] giveEuropeanSizes()
   {
      return EUROPEAN_SIZES;
   }

   @Override
   protected String[] giveBritishSizes()
   {
      return BRITISH_SIZES;
   }

   @Override
   protected String[] giveAustralianSizes()
   {
      throw new NotImplementedException();
   }

   @Override
   protected String[] giveJapansesSizes()
   {
      throw new NotImplementedException();
   }


}
